package Set;

import java.util.HashSet;

/**
 * @author 王艺锡
 * @version 1.0
 */
public class HashSet_ {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {
        //1.HashSet实现了Set接口
        //2.HashSet实际上是HashMap
        //3.可以存放null值，但只能存放一个,即不能有重复的元素

        //4.add方法执行后，会返回一个boolean值
        HashSet set = new HashSet();
        System.out.println(set.add("jack"));//T
        System.out.println(set.add("tom"));//T
        System.out.println(set.add("jack"));//F
        System.out.println(set.add("lihua"));//T
        System.out.println(set.add("mary"));//T

        set.remove("jack");
        System.out.println(set);

        //不同的对象，但是名字相同，可以添加
        set.add(new Dog("hubiao"));
        set.add(new Dog("hubiao"));
        System.out.println(set);

        //经典面试题，需要看源码
        set.add(new String("wyx"));//可以
        set.add(new String("wyx"));//不可以
        System.out.println(set);

    }
}

class Dog{
    private String name;

    public Dog(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Dog{" +
                "name='" + name + '\'' +
                '}';
    }
}
